//#include <base.js>

/**
* 
* Classe per gestire le funzioni di callback
* 
* @namespace CWN2
* @class event
* 
* 
*/


//Namespace: CWN2.event
CWN2.event = {
	
	/**
	* 
	* Funzione di callback che viene chiamata in seguito ad un evento di select
	* su una feature vettoriale
	* 
	* @method onFeatureSelect
	* 
	* @param {obj} evt Oggetto evento
	* 
	*/

	onFeatureSelect: function(evt) {
	    var feature = evt.feature;
	
	    // se impostato attributo infoUrl sul GeoJSON con i dati uso quello
	    // altrimenti uso la infoUrl definita sulla configurazione del layer
	    var url = feature.attributes.infoUrl;
	    var target = feature.attributes.infoTarget;
		if (!url) {
			var layerName = evt.object.name;
			var layerConfig = CWN2.configuration.getLayerConfigByName(layerName);
			url = layerConfig.infoUrl;
			target = layerConfig.infoTarget;
			// attribute replacement {$attribute_name} - utilizzo la funzione OpenLayers.Style.createLiteral
			url = OpenLayers.Style.createLiteral(url,feature.attributes,feature);
		}
		
		if (url) {
			if (target) {
				window.open(url,target,'');
			}
			else {
				window.document.location.href=url;
			}
		}
	},
	
	/**
	* 
	* Funzione di callback che viene chiamata in seguito ad un evento di unSelect
	* su una feature vettoriale
	* 
	* @method onFeatureUnselect
	* 
	* @param {obj} evt Oggetto evento
	* 
	*/
	
	onFeatureUnselect: function (evt) {
    	feature = evt.feature;
	}
	
};






/* funzioni per gestione popup
CWN2.event.onPopupClose = function(evt) {
    // 'this' is the popup.
    selectControl.unselect(this.feature);
}

CWN2.event.onFeatureSelect = function(evt) {
    feature = evt.feature;
    popup = new OpenLayers.Popup.FramedCloud("featurePopup",
                             feature.geometry.getBounds().getCenterLonLat(),
                             new OpenLayers.Size(100,100),
                             "<h2>"+feature.attributes.title + "</h2>" +
                             feature.attributes.description,
                             null, true, onPopupClose);
    feature.popup = popup;
    popup.feature = feature;
    this.addPopup(popup);
}

CWN2.event.onFeatureUnselect = function(evt) {
    feature = evt.feature;
    if (feature.popup) {
        popup.feature = null;
        this.removePopup(feature.popup);
        feature.popup.destroy();
        feature.popup = null;
    }
}
*/

